package com.pureut.system.service;

import com.pureut.system.domain.MaterialBomDetail;
import com.pureut.system.domain.MaterialBomDetailApi;
import com.pureut.system.domain.dto.MaterialBomDetailDto;
import com.pureut.system.domain.dto.MaterialBomDto;
import com.pureut.system.domain.vo.MaterialBomVo;

import java.util.List;

/**
 * @Description
 * @Param
 * @Date
 * @Author hl
 **/
public interface IMaterialBomService {

    /**
     * 查询bom信息
     */
    List<MaterialBomDto> selectBomList(MaterialBomVo materialBomVo);

    /**
     * 新增bom信息
     */
    int insertBom(MaterialBomVo materialBomVo) throws Exception;

    /**
     * 查询单个bom信息
     */
    MaterialBomDto getBomInfo(long bomId);

    /**
     * 修改bom信息
     */
    int updateMaterialBomEdit(MaterialBomVo materialBomVo) throws Exception;

    /**
     * 删除bom信息
     */
    int deleteMaterialBomById(String bomId) throws Exception;

    /**
     * bom明细分页
     */
    List<MaterialBomDetail> selectlBomDetailList(long bomId);

    /**
     * bom明细不分页
     */
    List<MaterialBomDetail> selectlBomDetailListAll(long bomId);


    /**
     * bom明细不分页(库存量)
     */
    List<MaterialBomDetail> selectlBomDetailListInventory(long bomId);

    /**
     * 获取BOM信息(根据物料编码)
     */
    List<MaterialBomDetailApi> selectBomDetailComposition(String code);

    /**
     * 根据编码获取半成品bom信息(fegin调用)
     */
    List<MaterialBomDetail> getHalfData(String materialCode);
}

